User navigation within 3D virtual environments is inherently difficult and confusing for average users. In a 3D environment a user can typically move in one of six directions. These are generally considered to be forward/backward, up/down, left/right (translation in three perpendicular axes) combined with rotation about three perpendicular axes (yaw, pitch, and roll), known as the six degrees of freedom. Controlling movement in six directions with a keyboard and/or mouse is difficult because these are essentially 2D devices. To accomplish movement in a 3D environment with 2D devices developers usually resort to a combination of key and/or mouse clicks and movement. Easily explaining this navigation to inexperienced users is difficult, and is made more so by the fact that no standard exists and different applications use different control setups. In addition to difficult user controls, allowing full six degrees of freedom navigation presents the developer with the additional requirement. Physical boundaries within the 3D world must be accounted for and users prevented from violating these boundaries.